pcworld online logo

Liste kutusuna yatay kayd²rma τubu≡u eklemek!

visual basic resim3 Aralar²ndan seτim yapabilece≡imiz verileri listelemek iτin Liste kutular²n² kullan²r²z. Ama eminim aran²zda bu kontrolⁿn bir ÷zelli≡inden τok yak²nanlar²n²z vard²r. Bildi≡iniz gibi bu kontrol yatay kayd²rma τubuklar²n² kabul etmez. Ama art²k ■u me■hur Api fonksiyonlar²ndan birini kullanarak bunun ⁿstesinden gelebiliriz.

 
SendMessage(hWnd%, LB_SETHORIZONTALEXTENT, wParam%, lParam&)

hWnd%   - Liste kutusunun kontrolⁿnⁿ al²r
wParam% - Liste kutusunun kaτ piksele kadar kayd²r²labilece≡ini tayin eder.
lParam% - Kullan²lmaz
Not: Bu Api fonksiyonu sadece bⁿyⁿk harflerle yaz²lan sabitle kullan²l²r.

Bu fonksiyonu daha iyi aτ²klayabilmek iτin ⁿzerinde bir liste kutusu bir de komut butonu olan bir form yarat²n, sonra da a■a≡²daki kodlar² ilgili yerlere girin.

'Formun General - Declarations b÷lⁿmⁿne yaz²lacak ve her sabit tek sat²rda olacak
Declare Function SendMessage& Lib "user" (ByVal hWnd%, ByVal wMsg%, ByVal wParam%, ByVal lParam&)
Declare Function GetFocus Lib "User" () As Integer

Sub Command1_Click ()
Const LB_SETHORIZONTALEXTENT = &H400 + 21 'Sabitler...
Const NUL = &O0

ScaleMode = 3
List1.SetFocus
ListHwnd% = GetFocus()

' ▌lk kar■²m²za gelecek de≡i■ken
ListString1$ = "PCWORLD "

' Bu de≡i■keni g÷rebilmek iτin ise liste kutusunu yana do≡ru biraz kayd²rmal²s²n²z.
ListString2$ = "Tⁿrkiye'de Bir numara !"

ExtraPixels% = TextWidth(ListString2$)
BoxWidth% = TextWidth(ListString1$) + 50

' Liste kutumuzun boyutlar²n² tekrar belirleyelim
List1.Move List1.Left, List1.Top, BoxWidth%

' Yatak kayd²rma τubu≡umuzu ekleyelim ve s²n²rlar²n² τizelim
X& = SendMessage(ListHwnd%, LB_SETHORIZONTALEXTENT, BoxWidth% +       ExtraPixels%, NUL)

' ╓rne≡imizi liste kutusuna ekleyelim....
List1.AddItem ListString1$ + ListString2$
End Sub

Bu kadar kolay!